import {
  baseurl
} from '../common/config.js'


const request = (url = '', data = {}, type = 'GET', header = {
  'content-type': 'application/json'
}, showLoading = true) => {
  if (showLoading) {
    uni.showLoading()
  }
  const deptId = uni.getStorageSync('userinfo').deptId;
  return new Promise((resolve, reject) => {
    uni.request({
      url: baseurl + url,
      data: data,
      method: type,
      header: header,
      dataType: 'json',
      success(res) {
        let result = res.data;
        if (!result.code) {
          result = {
            code: 200,
            data: res.data
          };
        }
        if (Object.prototype.toString.call(result) != "[object Object]") {
          result = {
            code: 200,
            data: data
          }
        }
        if (res.statusCode == 200) {
          if (result.code == 200) {
            resolve(result)
          } else {
            uni.showToast({
              title: result.msg,
              icon: 'none'
            })
          }

        } else {
          uni.showToast({
            title: '请求错误,请重试',
            icon: 'none'
          })
        }
      },
      fail(err) {
        console.log(err)
        uni.showToast({
          title: err.errMsg + '请检查网络,并重新加载小程序',
          icon: 'none'
        })
      },
      complete(res) {
        uni.hideLoading()
      }
    })
  })
}

export default request

// Promise.then(response => {
//   if (showLoading) {
//     uni.hideLoading()
//   }

//   let [error, res] = response;
//   if (error) {
//     uni.showToast({
//       title: error.errMsg + '请检查网络,并重新加载小程序',
//       icon: 'none'
//     })
//     return
//   }
//   if (!res.data.code) {
//     res.data = {
//       code: 200,
//       data: res.data
//     };
//   }
//   let data = res.data;
//   if (Object.prototype.toString.call(data) != "[object Object]") {
//     data = {
//       code: 200,
//       data: data
//     }
//   }
//   if (data.code == 500) {
//     uni.showToast({
//       title: data.msg || '接口内部错误，请联系管理员',
//       icon: 'none'
//     })
//   } else if (data.code == 200) {
//     let result = data
//     resolve(result)
//   } else {
//     uni.showToast({
//       title: err,
//       icon: 'none'
//     })
//   }
// }).catch(error => {
//   uni.showToast({
//     title: error,
//     icon: 'none'
//   })
//   reject(error)
// })